As computer processing power increases, the demands of technology users and applications also increase. For many industries, this has led to a rapid shift in resource prioritization. For example, the relative importance and cost of non-volatile storage capacity has decreased drastically in many relational database applications. For system administrators, concerns about storage capacity have shifted to those of performance and reliability as transactional delays for storage technology limit the potential benefit of faster and more powerful microprocessors.
Within the semiconductor industry, a similar parallel exists. Theoretical gains in processing power and computational speed following Moore's law are severely limited by non-CPU bottlenecks such as memory access speeds. As researchers search for the next paradigm-shifting storage technology, intermediary technologies such as improved caching methodologies have helped to bridge the gap. By utilizing multiple types of cache storage devices across a spectrum of different applications, the bottleneck of access latencies can be reduced for certain applications.
The study of cache design and caching algorithms has led to an increase in the complexity of caches and cache management devices. For everything from CPU caches to disk caches and database caches, cache systems have become increasingly important in overall system performance and across every layer of the computing spectrum. Cache algorithms deal primarily with insertion, removal, and modification of cache data items. The relevancy and prioritization of cached data is paramount to the efficient operation of a cache. By keeping frequently used data items in the cache, and evicting those which are less likely to be used in the future, traditional caching algorithms aim to increase the cache hit ratio and performance.